﻿using System.ComponentModel;
using Windows.Storage;

namespace Estela
{
    public class Configuración : INotifyPropertyChanged
    {
        public Configuración()
        {
            var settings = ApplicationData.Current.LocalSettings;

            if (null != settings.Values["TamañoFuente"])
                _tamañoFuente = (double)settings.Values["TamañoFuente"];

            if (null != settings.Values["TamañoTeclas"])
                _tamañoTeclas = (double)settings.Values["TamañoTeclas"];

            if (null != settings.Values["SubrayarEspacios"])
                _subrayarEspacios = (bool)settings.Values["SubrayarEspacios"];

            if (null != settings.Values["EliminarUnCarácter"])
                _eliminarUnCarácter = (bool)settings.Values["EliminarUnCarácter"];

            if (null != settings.Values["GuardarÚltimoTexto"])
                _guardarÚltimoTexto = (bool)settings.Values["GuardarÚltimoTexto"];
        }

        private double _tamañoTeclas = 28;
        public double TamañoTeclas
        {
            get
            {
                return _tamañoTeclas;
            }
            set
            {
                ApplicationData.Current.LocalSettings.Values["TamañoTeclas"] = _tamañoTeclas = value;
                PropertyChanged(this, new PropertyChangedEventArgs("TamañoTeclas"));
            }
        }

        private double _tamañoFuente = 60;
        public double TamañoFuente
        {
            get 
            { 
                return _tamañoFuente; 
            }
            set
            {
                ApplicationData.Current.LocalSettings.Values["TamañoFuente"] = _tamañoFuente = value;
                PropertyChanged(this, new PropertyChangedEventArgs("TamañoFuente"));
            }
        }

        private bool _subrayarEspacios = false;
        public bool SubrayarEspacios
        {
            get
            {
                return _subrayarEspacios;
            }
            set
            {
                ApplicationData.Current.LocalSettings.Values["SubrayarEspacios"] = _subrayarEspacios = value;
                PropertyChanged(this, new PropertyChangedEventArgs("SubrayarEspacios"));
            }
        }

        private bool _eliminarUnCarácter = false;
        public bool EliminarUnCarácter
        {
            get
            {
                return _eliminarUnCarácter;
            }
            set
            {
                ApplicationData.Current.LocalSettings.Values["EliminarUnCarácter"] = _eliminarUnCarácter = value;
                PropertyChanged(this, new PropertyChangedEventArgs("EliminarUnCarácter"));
            }
        }

        private bool _guardarÚltimoTexto = true;
        public bool GuardarÚltimoTexto
        {
            get
            {
                return _guardarÚltimoTexto;
            }
            set
            {
                ApplicationData.Current.LocalSettings.Values["GuardarÚltimoTexto"] = _guardarÚltimoTexto = value;
                PropertyChanged(this, new PropertyChangedEventArgs("GuardarÚltimoTexto"));
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
    }
}
